package com.aiti.lulian.dto;

import com.aiti.base.core.base.dto.PageDto;
import com.aiti.lulian.annotates.AddGroup;
import com.aiti.lulian.annotates.EditGroup;
import com.aiti.lulian.entity.CustomerContacts;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CustomerContactsDto extends PageDto {

    @NotBlank(message = "id不能为空", groups = {EditGroup.class})
    private String baseId;

    /**
     * 联系人姓名
     */
    @NotBlank(message = "联系人姓名不能为空", groups = {AddGroup.class, EditGroup.class})
    private String contactsName;

    /**
     * 联系人手机
     */

    private String contactsPhone;

    /**
     * 客户ID
     */
    @NotEmpty(message = "对应客户不能为空", groups = {AddGroup.class, EditGroup.class})
    private List<String> customerIdList;

    private String deptId;

    private String deptName;

    //职务
    private String position;
    //电话
    @NotBlank(message = "电话不能为空", groups = {AddGroup.class, EditGroup.class})
    private String telephone;

    private String remark;

    private String directorId;

    private String directorName;

    private String enterpriseId;

    /**
     * 创建者
     */

    private String creator;

    /**
     * 创建时间
     */

    private Date baseCreateTime;

    /**
     * 更新者
     */

    private String updateBy;

    /**
     * 创建时间
     */

    private Date baseUpdateTime;

    private Integer isDelete;

    private String userId;

    private boolean systemAdmin;
    private String roleIds;
    private String dateFilterType;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginDate;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
    private String deptPermission;
    private List<String> deptList;
    private String field;
    private String fieldValue;
    private List<String> idList;
    private String customerId;
    private List<CustomerContacts> customerContactsList;
}